package com.sugon.service;

import com.sugon.entity.SparePartEntity;
import com.sugon.entity.SparePartKey;
import com.sugon.entity.SparePartKeyCj;

import java.util.List;
import java.util.Map;

/**
 * 关键备件Service接口
 *
 * @author YuXD
 * @date 2023-06-23
 */
public interface SparePartKeyService {

    /**
     * 关键备件校验逻辑
     * 如果是A-关类型的备件，需要判断关键备件清单中是否含有
     * 如果含有，则不做任何操作
     * 如果不含有，则需要新增一条
     */
    SparePartKey checkKeySparePart(SparePartEntity sparePart);

    /**
     * 列表查询
     *
     * @param spareId
     * @return
     */
    List<SparePartKey> queryList(String spareId);

    /**
     * 查询指定备件下 在特定设备的指定位置上的安装情况
     *
     * @param keySpId  关键备件清单ID
     * @param spId     备件ID
     * @param devId    设备ID
     * @param position 位置
     * @return
     */
    List<SparePartKeyCj> queryCjKeySpList(String keySpId, String spId, String devId, String position);

    /**
     * 分页查询
     *
     * @param map 参数
     * @return list
     */
    List<SparePartKey> queryList(Map<String, Object> map);

    /**
     * 分页统计总数
     *
     * @param map 参数
     * @return 总数
     */
    int queryTotal(Map<String, Object> map);

    /**
     * 保存实体
     *
     * @param sparePartKey 实体
     * @return 保存条数
     */
    boolean save(SparePartKey sparePartKey);

    /**
     * 保存车间关键备件实体
     *
     * @param cjKeySp 车间关键备件
     * @return 保存条数
     */
    boolean save(SparePartKeyCj cjKeySp);
}
